home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / cxl41.arc / CXLDEF.H < prev    next >
Text File  |  1989-03-05  |  5KB  |  137 lines

  1.  
  2. /*
  3.    ┌──────────────────────────────────────────────────────────────────────────┐
  4.    │                                                                          │
  5.    │  CXLDEF.H - CXL (c) 1987, 1988 by Mike Smedley.                          │
  6.    │                                                                          │
  7.    │  This header file contains miscellaneous function prototypes and         │
  8.    │  definitions.                                                            │
  9.    │                                                                          │
  10.    └──────────────────────────────────────────────────────────────────────────┘
  11. */
  12.  
  13.  
  14. #if defined(__TURBOC__)                             /*  Turbo C  */
  15.     #if __STDC__
  16.         #define _Cdecl
  17.     #else
  18.         #define _Cdecl  cdecl
  19.     #endif
  20.     #define _Near
  21. #elif defined(__ZTC__)                              /*  Zortech C++  */
  22.     #define _Cdecl
  23.     #define _Near
  24. #elif defined(M_I86) && !defined(__ZTC__)           /*  Microsoft C/QuickC  */
  25.     #if !defined(NO_EXT_KEYS)
  26.         #define _Cdecl  cdecl
  27.         #define _Near   near
  28.     #else
  29.         #define _Cdecl
  30.         #define _Near
  31.     #endif
  32. #elif defined(__POWERC__)                           /*  Power C  */
  33.     #define _Cdecl
  34.     #define _Near
  35. #endif
  36.  
  37.  
  38. /*---------------------------[ Function Prototypes ]-------------------------*/
  39.  
  40. char           *_Cdecl biosver(void);
  41. int             _Cdecl clockcal(void);
  42. void            _Cdecl delay_(unsigned duration);
  43. void            _Cdecl dispch(int ch);
  44. unsigned        _Cdecl expmem(void);
  45. unsigned        _Cdecl extmem(void);
  46. void            _Cdecl sound_(unsigned pitch,unsigned duration);
  47. char           *_Cdecl sysdate(int dtype);
  48. char           *_Cdecl systime(int ttype);
  49. int             _Cdecl tabstop(int col,int tabwidth);
  50. unsigned long   _Cdecl timer(void);
  51.  
  52.  
  53. /*-----------------[ definitions for common control codes ]------------------*/
  54.  
  55. #define NUL         0
  56. #define BEL         7
  57. #define BS          8
  58. #define HT          9
  59. #define LF          10
  60. #define FF          12
  61. #define CR          13
  62. #define ESC         27
  63.  
  64.  
  65. /*------------------------[ definition of NULL ]-----------------------------*/
  66.  
  67. #if !defined(NULL)
  68.     #if defined(__TURBOC__)                         /*  Turbo C  */
  69.         #if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
  70.             #define NULL    0
  71.         #else
  72.             #define NULL    0L
  73.         #endif
  74.     #elif defined(__ZTC__)                          /*  Zortech C++  */
  75.         #ifdef LPTR
  76.             #define NULL    0L
  77.         #else
  78.             #define NULL    0
  79.         #endif
  80.     #elif defined(M_I86) && !defined(__ZTC__)       /*  Microsoft C/QuickC  */
  81.         #if defined(M_I86SM) || defined(M_I86MM)
  82.             #define NULL    0
  83.         #else
  84.             #define NULL    0L
  85.         #endif
  86.     #elif defined(__POWERC__)                       /*  Power C  */
  87.         #define NULL    0
  88.     #endif
  89. #endif
  90.  
  91.  
  92. /*-----------------------[ Boolean logic conditions ]------------------------*/
  93.  
  94. #define NO          0
  95. #define YES         1
  96. #define FALSE       0
  97. #define TRUE        1
  98. #define OFF         0
  99. #define ON          1
  100.  
  101.  
  102. /*----------------[ machine ID codes returned from machid() ]----------------*/
  103.  
  104. #define IBMPC       255                 /*  IBM PC                 */
  105. #define IBMPCXT     254                 /*  IBM PC/XT              */
  106. #define IBMPCJR     253                 /*  IBM PCjr               */
  107. #define IBMPCAT     252                 /*  IBM PC/AT              */
  108. #define IBMPCXT2    251                 /*  IBM PC/XT              */
  109. #define IBMCONV     249                 /*  IBM PC Convertible     */
  110. #define SPERRYPC    48                  /*  Sperry PC              */
  111.  
  112.  
  113. /*-----------------------[ macro-function definitions ]-----------------------*/
  114.  
  115. #if !defined(MK_FP)
  116. #define MK_FP(seg,ofs)      ((void far *) (((unsigned long)(seg) << 16) | \
  117.                             (unsigned)(ofs)))
  118. #endif
  119. #if !defined(poke)
  120. #define poke(a,b,c)         (*((int  far*)MK_FP((a),(b))) = (int)(c))
  121. #define pokeb(a,b,c)        (*((char far*)MK_FP((a),(b))) = (char)(c))
  122. #define peek(a,b)           (*((int  far*)MK_FP((a),(b))))
  123. #define peekb(a,b)          (*((char far*)MK_FP((a),(b))))
  124. #endif
  125. #if defined(M_I86) && !defined(__ZTC__)
  126. #define biosequip()         _bios_equiplist()
  127. #elif defined(__ZTC__)
  128. #define biosequip()         peek(0,0x410)
  129. #endif
  130. #define beep()              dispch(BEL)
  131. #define gameport()          ((biosequip()&4096)>>12)
  132. #define machid()            (unsigned char)peekb(0xf000,0xfffe)
  133. #define mathchip()          ((biosequip()&2)>>1)
  134. #define numflop()           (((biosequip()&192)>>6)+1)
  135. #define numpar()            (((unsigned)(biosequip()&-16384))>>14)
  136. #define numser()            ((biosequip()&3584)>>9)
  137.